Avec l'aide de Frédéric Blanchard
https://iut-info.univ-reims.fr/users/coutant/TP1_GraphesIntro.html
Une puce se déplace de façon aléatoire sur une surface constituée de deux parties A et B. en assimilant la puce à un point, nous pouvons suivre en continu les déplacements de la puce. Nous allons simplifier cette situation de deux façons :
A l’instant initial t0, la puce est dans la partie A.
On dispose de deux informations :
Si la puce est dans la partie A à l’instant i, la probabilité qu’elle soit dans la partie B à l’instant i+1 est 0,1. Si la puce est dans la partie B, elle reste dans la partie B.
Lien vers graphviz : http://www.graphviz.org/
! pip install graphviz
import networkx as nx
import numpy as np
import matplotlib.pyplot as plt
from dirmaths import * # Programme mis au point par Frédéric Blanchard.
Pour faire fonctionner ce programme, il faut installer :
g=nx.DiGraph() # graphe orienté
g.add_edges_from([('A','A',{'weight':0.9}),('A','B',{'weight':0.1}),('B','B',{'weight':1})])
adj=nx.to_numpy_matrix(g)
G = {
"matrice" : adj,
"orientation" : True,
"poids" : True,
"label" : ['A','B'],
"titre" : "Marche aléatoire de la puce",
"disposition" : "dot"
}
# Il y a trois dispositions : neato, circo et dot.
# La fonction didplay utilise le fichier dirmaths
display(G["matrice"],directed = G["orientation"],weighted=G["poids"],label = G["label"],title = G["titre"],dispo=G["disposition"])
Image réalisée par graphviz directement
T0=np.array([1,0]) # Etat initial
def Etatn(g,T0,n): # Fonction qui calcule l'état à l'instant n
"Fonction qui calcule l'état à l'instant n"
adj=nx.to_numpy_matrix(g)
return(np.dot(T0,np.linalg.matrix_power(adj,n)))
# np.dot : produit des matrices
# linalg.matrix_power(adj,n) : matrice à la puissance n
# Recherche de la position de la puce à l'instant 3. Probabilités des états.
Etatn(g,T0,3)
print(adj)
Exemple 2.
Un joueur a 1 Euro et veut posséder 3 Euros. Il joue au jeu de lancer de pièce suivant (supposé équi probable) :
Exemple 3.
Avant le début des travaux de construction d’une autoroute, une équipe d’archéologie préventive procède à des sondages successifs.
Lorsqu’un sondage donne lieu à la découverte de vestiges, il est dit positif ; dans la cas contraire il est dit négatif.
L’expérience acquise donne les informations suivantes :
Représenter cet exemple par un graphe probabiliste.
Exemple 4.
Dans un village, une nouvelle maladie contagieuse mais non mortelle fait son apparition.
Un individu peut être dans l’un des trois états suivants :
Les scientifiques ont découvert le scénario de développement suivant : Pour les individus sains, la probabilité de devenir porteurs sains est égale à $\frac{1}{3}$ et la probabilité de devenir malades est égale à $\frac{1}{3}$. Pour les individus porteurs sains, la probabilité de devenir malade s est égale à $\frac{1}{2}$.
Représenter cet exemple par un graphe probabiliste.